package com.zmn.oms.persistence.interfaces.conf.distribute;

import com.zmn.oms.model.entity.conf.distribute.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 接口描述 无网格抢单配置
 *
 * @author fubiao
 * @since 2022/07/14
 */
public interface NonGridRobOrderConfigDao {

    /**
     *  根据主键查询
     * @param nonGridConfigId
     * @return
     */
    NonGridRobOrderConfig findByKey(@Param("nonGridConfigId") Integer nonGridConfigId);

    /**
     * 根据平台&业务类型&派单方式查询
     * @param platIds
     * @param bizType
     * @param distributeWay
     * @return
     */
    List<NonGridRobOrderConfig> listCompanyByPlatIdAndType(@Param("platIds") List<Integer> platIds,
                                                           @Param("bizType") Integer bizType,
                                                           @Param("distributeWay") Integer distributeWay);

    /**
     *  根据query查询无网格抢单配置
     * @param configQuery
     * @return
     */
    List<NonGridRobOrderConfig> listNoGridRobConfigByQuery(NonGridRobOrderConfigQuery configQuery);

    /**
     *  根据query查询数量
     * @param configQuery
     * @return
     */
    Integer countByQuery(NonGridRobOrderConfigQuery configQuery);

    List<Integer> hasBeenSetCity(CheckCityAvailableQuery query);

    /**
     *  新增数据
     * @param nonGridRobOrderConfig
     * @return
     */
    Integer insert(NonGridRobOrderConfig nonGridRobOrderConfig);

    /**
     *  根据主键进行更新
     * @param nonGridRobOrderConfig
     * @return
     */
    Integer updateByKey(NonGridRobOrderConfig nonGridRobOrderConfig);


    /**
     *  根据主键进行删除
     * @param configId
     * @return
     */
    Integer deleteByKey(@Param("configId") Integer configId);
}
